package com.woniuxy.entity;

import com.baomidou.mybatisplus.annotation.*;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;

/**
 *     学习的时候:
 *         0  基础       没有接触编程 0
 *         -1 负基础     自己的理解是错误 还按照自己的想法来
 *
 *      @TableName、@TableField 如果大家安装规范书写 (java对象和mysql中的表的 字段都正常映射 不需要这些注解)
 *
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
//@TableName("tbl_user")   //如果java对象 和 mysql中的表的名称不一致 需要手动映射
public class User {

//    @TableId(type = IdType.AUTO)   //数据库的id 自增
//    @TableId(type = IdType.INPUT)    //手动 输入
    @TableId(type = IdType.ASSIGN_ID)    //雪花id  没有设置id的值 默认是这个
    private Long id;  //注：id是long类型
    private String name;

    @TableField("pwd")   //把java对 和  mysql表中的字段进行映射
    private String password;

    private Integer age;

    @TableField(select = false)  //这一列不参与查询
    private String tel;

    //添加一个 java属性  在mysql表中 不存在的列
    @TableField(exist = false)
    private Integer online;

    @TableLogic(delval = "1", value = "0")  //这是一个逻辑删除的字段
    private Integer deleted;

    @Version  //这个字段用于版本控制
    private Integer version;

    @TableField(fill = FieldFill.INSERT)  //在插入操作的时候填充
    private Date createTime;  //创建时间

    @TableField(fill = FieldFill.INSERT_UPDATE)  //在插入和更新时填充
    private Date updateTime;  //更新时间

}